package com.xia.controller;

import com.xia.service.PermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 权限控制器类，用于处理与用户角色权限相关的请求
 */
@RestController
@RequestMapping("/permission")
public class PermissionController {

    /**
     * 自动注入的权限服务接口，用于执行权限相关的业务逻辑
     */
    @Autowired
    private PermissionService permissionService;

    /**
     * 绑定默认角色到指定用户的控制器方法
     */
    @PostMapping("/bindDefaultRole/{userId}")
    public int bindDefaultRole(@PathVariable Long userId) {
        return permissionService.bindDefaultRole(userId);
    }

    /**
     * 获取指定用户的角色代码
     */
    @PostMapping("/getUserRoleCode/{userId}")
    public String getUserRoleCode(@PathVariable Long userId) {
        return permissionService.getUserRoleCode(userId);
    }

    /**
     * 将指定用户升级为管理员角色的控制器方法
     */
    @PostMapping("/upgradeToAdmin/{userId}")
    public int upgradeToAdmin(@PathVariable Long userId) {
        return permissionService.upgradeToAdmin(userId);
    }

    /**
     * 将指定用户降级为普通用户角色的控制器方法
     */
    @PostMapping("/downgradeToUser/{userId}")
    public int downgradeToUser(@PathVariable Long userId) {
        return permissionService.downgradeToUser(userId);
    }

}

